#ifndef _GRAPHIC_H
#define _GRAPHIC_H 1

#include "sheet.h"

// 函数申明
void init_palette(void);
void set_palette(int start, int end, unsigned char *rgb);
void boxfill8(unsigned char *vram, int xsize, unsigned char c, int x0, int y0, int x1, int y1);
void init_screen8(char* vram, int xsize, int ysize);
void putfont8(char *vram, int xsize, int x, int y, char c, char *font);
/**
 *  在屏幕上输出单个字符
 *
 * vram	图像缓冲区首地址
 * xsize 是每行的列数
 * x, y 要输出的字符在屏幕上的坐标
 * c	字符的颜色
 * font	指向要输出的字符(我不知道应该怎么解释这个参数, 它实际上是一个字符指针
 *						它所指向的是要显示某个字符需要绘制的具体像素, 额。。
 *						好吧, 不明白的请参考书上P94最下面的'A'字符的图形)
 */
void putfont8_ch(char *vram, int xsize, int x, int y, char c, char *font);
void putfonts8_asc(char *vram, int xsize, int x, int y, char c, unsigned char *s);
void init_mouse_cursor8(char *mouse, char bc);
void putblock8_8(char *vram, int vxsize, int pxsize, int pysize, int px0, int py0, char *buf, int bxsize);
void drawLine(struct SHEET *sht, int x0, int y0, int x1, int y1, int col);
/* 符号常量声明 */
/* 声明相应颜色在调色板中的下标 */
#define COL8_000000		0		/* 黑色 在调色板中下标为0 */
#define COL8_FF0000		1		/* 亮红色 在调色板中下标为1 */
#define COL8_00FF00		2		/* 亮绿色 在调色板中下标为2 */
#define COL8_FFFF00		3		/* 亮黄色 在调色板中下标为3 */
#define COL8_0000FF		4		/* 亮蓝色 在调色板中下标为4 */
#define COL8_FF00FF		5		/* 亮紫色 在调色板中下标为5 */
#define COL8_00FFFF		6		/* 浅亮蓝色 在调色板中下标为6 */
#define COL8_FFFFFF		7		/* 白色 在调色板中下标为7 */
#define COL8_C6C6C6		8		/* 亮灰色 在调色板中下标为8 */
#define COL8_840000		9		/* 暗红色 在调色板中下标为9 */
#define COL8_008400		10		/* 暗绿色 在调色板中下标为10 */
#define COL8_848400		11		/* 暗黄色 在调色板中下标为11 */
#define COL8_000084		12		/* 暗蓝色 在调色板中下标为12 */
#define COL8_840084		13		/* 暗紫色 在调色板中下标为13 */
#define COL8_008484		14		/* 浅暗蓝色 在调色板中下标为14 */
#define COL8_848484		15		/* 暗灰色 在调色板中下标为15 */

#endif
